﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Features - Conditions </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Features - Conditions ">
    <meta name="generator" content="docfx 2.59.2.0">
    
    <link rel="shortcut icon" href="../../../../favicon.ico">
    <link rel="stylesheet" href="../../../../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../../../../styles/docfx.css">
    <link rel="stylesheet" href="../../../../styles/main.css">
    <link rel="stylesheet" href="../../../../styles/socialbar.css">
    <link rel="stylesheet" href="../../../../styles/header.css">
    <link rel="stylesheet" href="../../../../styles/version.css">
    <link href="https://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,100italic,300italic,400italic" rel="stylesheet" type="text/css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <meta property="docfx:navrel" content="../../../../toc.html">
    <meta property="docfx:tocrel" content="../../../toc.html">
    <meta property="docfx:uid" content="doc-plugins-ui-features-conditions">
    
    <meta property="docfx:rel" content="../../../../">
    
    <script type="text/javascript" src="../../../../nav.js"></script>
    <script type="text/javascript" src="../../../toc.js"></script>
  
  </head>  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <div class="mb-socials-heading" style="height: 40px;">
        	<div class="mb-socials-heading-inner container">
        		<div class="mb-socials-heading-right">
        			<div class="mb-socials-list">
                          
        				<div class="mb-socials-item facebook">
        					<a class="mb-socials-item-link" target="_blank" href="https://facebook.com/embyapp"></a>
        					<div class="mb-socials-item-popup">
        						<span>Facebook</span>
        					</div>
        				</div><div class="mb-socials-item twitter">
        					<a class="mb-socials-item-link" target="_blank" href="https://twitter.com/embyapp"></a>
        					<div class="mb-socials-item-popup">
        						<span>Twitter</span>
        					</div>
        				</div>
        				<div class="mb-socials-item pinterest">
        					<a class="mb-socials-item-link" target="_blank" href="https://www.pinterest.com/emby0240/emby-news/"></a>
        					<div class="mb-socials-item-popup">
        						<span>Pinterest</span>
        					</div>
        				</div>
        				<div class="mb-socials-item tumblr">
        					<a class="mb-socials-item-link" target="_blank" href="https://embyapp.tumblr.com/"></a>
        					<div class="mb-socials-item-popup">
        						<span>Tumblr</span>
        					</div>
        				</div>
        				<div class="mb-socials-item github">
        					<a class="mb-socials-item-link" target="_blank" href="https://github.com/MediaBrowser"></a>
        					<div class="mb-socials-item-popup">
        						<span>GitHub</span>
        					</div>
        				</div><div class="mb-socials-item rss">
        					<a class="mb-socials-item-link" target="_blank" href="https://emby.media/blog.xml"></a>
        					<div class="mb-socials-item-popup">
        						<span>RSS</span>
        					</div>
        				</div>
                          
        			</div>
        		</div>
        	</div>
        </div>
        <div class="container">
        	<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
        		  
        		  <a class="navbar-brand" href="../../../../index.html">
        		    <img id="logo" class="svg" src="../../../../images/emby_dev_logo.png" alt="">
        		  </a>
        		  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
        			<span class="sr-only">Toggle navigation</span>
        			<span class="icon-bar"></span>
        			<span class="icon-bar"></span>
        			<span class="icon-bar"></span>
        		  </button>
        		<div class="collapse navbar-collapse" id="navbar">
        			
        			<ul class="nav level1 navbar-nav">
        			      <li class="nav-item">
        			          <a class="nav-link" href="../../../../index.html" title="DEV Home">DEV Home</a>
        			      </li>
        			      <li class="nav-item">
        			          <a class="nav-link" href="../../../../doc/index.html" title="Documentation">Documentation</a>
        			      </li>
        			      <li class="nav-item">
        			          <a class="nav-link" href="../../../../reference/index.html" title="Reference">Reference</a>
        			      </li>
        			      <li class="nav-item">
        			          <a class="nav-link" href="../../../../download/index.html" title="Download">Download</a>
        			      </li>
        			</ul>		</div>
        	</nav>
        </div>
        <div class="nav-overlay d-none"></div>        
        <div class="subnav navbar navbar-default">
          <div class="container">
            <div class="hide-when-search" id="breadcrumb">
        	  <ul class="breadcrumb">
        		<li></li>
        	  </ul>
        	</div>
        
        	<div class="breadcrumpsearch">
        	  <form class="navbar-form navbar-right" role="search" id="search">
        		<div class="form-group">
        		  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
        		</div>
        	  </form>
        	</div>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="doc-plugins-ui-features-conditions">
<h1 id="features-conditions">Features: Conditions</h1>

<p>Conditions can be declared with attributes and are evaluated at the client after each value change. Conditions can be used to control two things</p>
<ul>
<li>Enabled/Disabled State</li>
<li>Control Visibility</li>
</ul>
<p>Condition attributes are applied to the property whose associated control(s) should be affected by the condition. The condition can reference any other value(s) which should be evaluated for the conditional state change.</p>
<h2 id="simple-conditions">Simple Conditions</h2>
<h4 id="simple-showhide-condition">Simple Show/Hide Condition</h4>
<p>Checking/unchecking will show or hide another control</p>
<pre><code class="lang-csharp">[DisplayName(&quot;Boolean Value&quot;)]
[Description(&quot;Checking/unchecking will show or hide another control&quot;)]
public bool SimpleBoolValue { get; set; }

[DisplayName(&quot;Conditionally Visible Value&quot;)]
[Description(&quot;This is the description.&quot;)]
[VisibleCondition(nameof(SimpleBoolValue), SimpleCondition.IsTrue)]
public string DemoName1 { get; set; } = &quot;GenericEdit Demo&quot;;
</code></pre>
<h4 id="simple-enabledisable-condition">Simple Enable/Disable Condition</h4>
<p>Checking/unchecking will enable or disable the control below</p>
<pre><code class="lang-csharp">[DisplayName(&quot;Boolean Value&quot;)]
[Description(&quot;Checking/unchecking will enable or disable the control below&quot;)]
public bool SimpleBoolValue2 { get; set; }

[DisplayName(&quot;Conditionally Enabled Select&quot;)]
[Description(&quot;This is the description.&quot;)]
[EnabledCondition(nameof(SimpleBoolValue2), SimpleCondition.IsTrue)]
public VideoCodecTypes SimpleEnumSelect { get; set; }
</code></pre>
<h2 id="value-conditions">Value Conditions</h2>
<h4 id="showhide-by-enum-value-selection">Show/Hide by Enum Value Selection</h4>
<p>Selecting 'Don't know' will show a message</p>
<pre><code class="lang-csharp">[DisplayName(&quot;Selecting 'Don't know' will show a message&quot;)]
[Description(&quot;This is the description.&quot;)]
public StayOrGo StayOrGoSelect { get; set; } = StayOrGo.Go;

[VisibleCondition(nameof(StayOrGoSelect), ValueCondition.IsEqual, StayOrGo.DontKnow)]
public LabelItem StayOrGoLabel { get; set; } = new LabelItem(&quot;IT'S TIME TO MAKE A DECISION!&quot;);
</code></pre>
<h2 id="referencing-nested-values">Referencing Nested Values</h2>
<h4 id="showhide-by-enum-value-selection-1">Show/Hide by Enum Value Selection</h4>
<p>Values of child properties can be referenced using 'dot' notation like this:</p>
<pre><code class="lang-csharp">[DisplayName(&quot;File Import 1&quot;)]
public ChildOptionExample ChildOption1 { get; set; } = new ChildOptionExample();

[DisplayName(&quot;File Import 2&quot;)]
[VisibleCondition(nameof(ChildOption1) + &quot;.&quot; + nameof(ChildOptionExample.File), SimpleCondition.IsNotNullOrEmpty)]
public ChildOptionExample ChildOption2 { get; set; } = new ChildOptionExample();
</code></pre>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                </ul>
              </div>
              <div class="sdkversion Release">
                  SDK <span class="sdkVersionSpan"></span>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
                <h5>On this Page</h5>
                <div></div>
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to Top</a>
            </span>
            Copyright 2022 © EMBY LLC.  Please see our <a class="lnk" href="https://emby.media/terms.html">terms of use</a> and <a class="lnk" href="https://emby.media/privacy.html">privacy policy</a>.
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../../../../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../../../../searchIndex.js"></script>
    <script type="text/javascript" src="../../../../styles/lunr.min.js"></script>
    <script type="text/javascript" src="../../../../styles/docfx.js"></script>
    <script type="text/javascript" src="../../../../styles/main.js"></script>
  </body>
</html>
